<?php
namespace Common\Api;
class ConfigApi {
	/**
	 * 获取数据库中的配置列表
	 * @return array 配置数组
	 */
	public static function lists(){
		$map    = array('status' => 1);
		$data   = M('Config')->where($map)->field('type,name,value')->select();
		
		$config = array();
		if($data && is_array($data)){
			foreach ($data as $value) {
				$config[$value['name']] = self::parse($value['type'], $value['value']);
			}
		}
		return $config;
	}

	/**
	 * 根据配置类型解析配置
	 * @param  integer $type  配置类型
	 * @param  string  $value 配置值
	 */
	private static function parse($type, $value){
		switch ($type) {
			case 3: //解析数组
				$array = preg_split('/[,;\r\n]+/', trim($value, ",;\r\n"));
				if(strpos($value,':')){
					$value  = array();
					foreach ($array as $val) {
						list($k, $v) = explode(':', $val);
						$value[$k]   = $v;
					}
				}else{
					$value =    $array;
				}
			break;
		}
		return $value;
	}	
}